package com.atguigu.tingshu.album.client;


import com.atguigu.tingshu.model.album.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;
import java.util.Map;

@FeignClient(name = "service-album"
        , path = "/client/album/albumInfo", contextId = "albumClientFeign")
public interface AlbumClientFeign {

    @GetMapping("/getBaseCategoryView/{category3Id}")
    public BaseCategoryView getBaseCategoryView(@PathVariable("category3Id")Long category3Id);




    /**
     * 根据id查专辑
     *
     * @param albumId
     * @return
     */
    @GetMapping("/getAlbumInfo/{albumId}")
    public AlbumInfo getAlbumInfo(@PathVariable("albumId") Long albumId);



    /**
     * 获取专辑标签list
     * @param albumId
     * @return
     */
    @GetMapping("/getAlbumAttributeValueList/{albumId}")
    public List<AlbumAttributeValue> getAlbumAttributeValueList(
            @PathVariable("albumId") Long albumId);


    /**
     * 获取专辑统计信息
     * @param albumId
     * @return
     */
    @GetMapping("/getAlbumStatMap/{albumId}")
    public Map<String, Object> getAlbumStatMap(@PathVariable("albumId") Long albumId);


    /**
     * 首页搜索：
     * 根据1级分类id获取3级分类top7
     * @param category1Id
     * @return
     */
    @GetMapping("/findTopBaseCategory3/{category1Id}")
    public List<BaseCategory3> findTopBaseCategory3(@PathVariable("category1Id") Long category1Id);


    /**
     * 判断布隆过滤器中是否包含该专辑数据
     * @param albumId
     * @return
     */
    @GetMapping("/getAlbumFromBloom/{albumId}")
    public Boolean getAlbumFromBloom(@PathVariable("albumId")Long albumId);

    /**
     * 查询所有一级分类列表
     * @return
     */
    @GetMapping("/getAllBaseCategory1")
    List<BaseCategory1> getAllBaseCategory1();


}